package by2019;
/*
 * Leetcode 111
 * 给定一个二叉树，求最小深度
 */
public class 二叉树的最小深度 {

	public static void main(String[] args) {

	}
	
	//和找最大深度差不多，只是需要对只有一个分支的子树进行判断
	//因为需要找到没有子树的节点才能停止遍历
	//如果不进行判断的话会在只有一个子树的时候返回一个长度值，这是错误的
	 public int minDepth(TreeNode root) {
		if(root==null) 
			return 0 ;
		if(root.left==null) 
			return minDepth(root.right)+1;
		if(root.right==null)
			return minDepth(root.left) +1 ;
		
		return Math.min(minDepth(root.left), minDepth(root.right)) ;
	 }

}
